package version;

import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;

/**
 * 封装
 * Mysql封装工具类：链接对应数据库
 * Mysql与Oracle具备：url、username、password
 * 所有数据库公用的定义为属性
 * 2.getParam(String 路径) 获取参数方法：链接成功数据库操作
 * 2.1 外置文件【url、账号、密码】统一配置文件中【形式：键值对】
 *     db_mysql.properties
 *
 *
 *
 *
 *
 *
 */
public class Mysql {
    //定义数据库基本属性：私有化静态属性
    private static String url;
    private static String username;
    private static String password;
    //2.定义方法：链接成功数据库
    public static void getParam(String fileName) throws IOException {
     //2.1 读取db_mysql.properties文件--Properties类
        Properties p=new Properties();
        //2.1【补充】低级流--搬运数据

     //2.1[补充]Properties类提供 load（）方法
     //mysql.class 表示当前Mysql类的class对象
     //getClassLoader（） 获取当前类的加载器【加载器：根据路径执行配置文件】
        //理解：图书馆---mysql 书籍区域--找到对应【db_mysql.Properties】书籍
     InputStream fis=
     Mysql.class.getClassLoader().getResourceAsStream(fileName);
     p.load(fis);
     //2.2从db_mysql.Properties读取的键值对信息 赋值给mysql数据库的基本而信息【url.用户.密码】
       //properties类提供方法 getProperty("键") 通过键找值
        url=p.getProperty("url");
        username=p.getProperty("username");
        password=p.getProperty("password");
        //2.3打桩 测试是否连接成功
        System.out.println("数据库基本信息："+url+username+password);
    }
   //3.测试工具类--链接成功数据库【外置文件--配置Mysql基本信息】
   public static void main(String[] args) throws IOException, SQLException {
       Mysql.getParam("db_mysql.properties");
       //作业2.参考Mysql工具类--编写Oracle工具类
       //目的：工具类--链接成功不同的数据库【外置文件基本信息配置不同】
       //作业3：【增加一条操作---mi库--book】 查询
       //JDBC：Connection、statement/  ResultSet
       //1.创建数据库连接操作
       Connection con=
               DriverManager.getConnection(url,username,password);
       //2.执行sql
       String sql=
       "insert into book values(6,'余华','活着',35,'2023年',90,'否')";
       Statement st =con.createStatement();
       //增删改 executeUpdate（） 返回成功几条记录
       int rows=st.executeUpdate(sql);
       System.out.println("book表添加了"+rows+"条记录");

       String dd="delete from book where id=6";
       int se=st.executeUpdate(dd);
       System.out.println(se);

       String pp="update book set name='皮皮' where id=6";
       int sep=st.executeUpdate(pp);
       System.out.println(sep);
       //作业3
       String s="select * from book";
       ResultSet rs=st.executeQuery(s);
       while (rs.next()){
           int id=rs.getInt("id");
           String author=rs.getString("author");
           String name=rs.getString("name");
           int price=rs.getInt("price");
           String date=rs.getString("date");
           int number=rs.getInt("number");
           String discount=rs.getString("discount");
           System.out.println(id+author+name+price+date+number+discount);
       }
   }
}













